<?php
/*
 * Copyright (c) 2017-2025 Tencent. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
namespace TencentCloud\Tdmq\V20200217\Models;
use TencentCloud\Common\AbstractModel;

/**
 * ExportRocketMQMessageDetail response structure.
 *
 * @method string getMsgId() Obtain Message ID
 * @method void setMsgId(string $MsgId) Set Message ID
 * @method integer getBornTimestamp() Obtain Message Generation Timestamp
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setBornTimestamp(integer $BornTimestamp) Set Message Generation Timestamp
Note: This field may return null, indicating that no valid values can be obtained.
 * @method integer getStoreTimestamp() Obtain Message Storage Timestamp
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setStoreTimestamp(integer $StoreTimestamp) Set Message Storage Timestamp
Note: This field may return null, indicating that no valid values can be obtained.
 * @method string getBornHost() Obtain Message Production Client Address
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setBornHost(string $BornHost) Set Message Production Client Address
Note: This field may return null, indicating that no valid values can be obtained.
 * @method string getMsgTag() Obtain Message Tag
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setMsgTag(string $MsgTag) Set Message Tag
Note: This field may return null, indicating that no valid values can be obtained.
 * @method string getMsgKey() Obtain Message key
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setMsgKey(string $MsgKey) Set Message key
Note: This field may return null, indicating that no valid values can be obtained.
 * @method string getProperties() Obtain Message Attributes
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setProperties(string $Properties) Set Message Attributes
Note: This field may return null, indicating that no valid values can be obtained.
 * @method integer getReConsumeTimes() Obtain Message Retry Count
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setReConsumeTimes(integer $ReConsumeTimes) Set Message Retry Count
Note: This field may return null, indicating that no valid values can be obtained.
 * @method string getMsgBody() Obtain Base64 Encoded String
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setMsgBody(string $MsgBody) Set Base64 Encoded String
Note: This field may return null, indicating that no valid values can be obtained.
 * @method integer getMsgBodyCRC() Obtain CRC32 Code of Message Content
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setMsgBodyCRC(integer $MsgBodyCRC) Set CRC32 Code of Message Content
Note: This field may return null, indicating that no valid values can be obtained.
 * @method integer getMsgBodySize() Obtain Specifies the message body size (unit K).
Does not return messages when above 2048.
 * @method void setMsgBodySize(integer $MsgBodySize) Set Specifies the message body size (unit K).
Does not return messages when above 2048.
 * @method string getRequestId() Obtain The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 * @method void setRequestId(string $RequestId) Set The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 */
class ExportRocketMQMessageDetailResponse extends AbstractModel
{
    /**
     * @var string Message ID
     */
    public $MsgId;

    /**
     * @var integer Message Generation Timestamp
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $BornTimestamp;

    /**
     * @var integer Message Storage Timestamp
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $StoreTimestamp;

    /**
     * @var string Message Production Client Address
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $BornHost;

    /**
     * @var string Message Tag
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $MsgTag;

    /**
     * @var string Message key
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $MsgKey;

    /**
     * @var string Message Attributes
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $Properties;

    /**
     * @var integer Message Retry Count
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $ReConsumeTimes;

    /**
     * @var string Base64 Encoded String
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $MsgBody;

    /**
     * @var integer CRC32 Code of Message Content
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $MsgBodyCRC;

    /**
     * @var integer Specifies the message body size (unit K).
Does not return messages when above 2048.
     */
    public $MsgBodySize;

    /**
     * @var string The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    public $RequestId;

    /**
     * @param string $MsgId Message ID
     * @param integer $BornTimestamp Message Generation Timestamp
Note: This field may return null, indicating that no valid values can be obtained.
     * @param integer $StoreTimestamp Message Storage Timestamp
Note: This field may return null, indicating that no valid values can be obtained.
     * @param string $BornHost Message Production Client Address
Note: This field may return null, indicating that no valid values can be obtained.
     * @param string $MsgTag Message Tag
Note: This field may return null, indicating that no valid values can be obtained.
     * @param string $MsgKey Message key
Note: This field may return null, indicating that no valid values can be obtained.
     * @param string $Properties Message Attributes
Note: This field may return null, indicating that no valid values can be obtained.
     * @param integer $ReConsumeTimes Message Retry Count
Note: This field may return null, indicating that no valid values can be obtained.
     * @param string $MsgBody Base64 Encoded String
Note: This field may return null, indicating that no valid values can be obtained.
     * @param integer $MsgBodyCRC CRC32 Code of Message Content
Note: This field may return null, indicating that no valid values can be obtained.
     * @param integer $MsgBodySize Specifies the message body size (unit K).
Does not return messages when above 2048.
     * @param string $RequestId The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    function __construct()
    {

    }

    /**
     * For internal only. DO NOT USE IT.
     */
    public function deserialize($param)
    {
        if ($param === null) {
            return;
        }
        if (array_key_exists("MsgId",$param) and $param["MsgId"] !== null) {
            $this->MsgId = $param["MsgId"];
        }

        if (array_key_exists("BornTimestamp",$param) and $param["BornTimestamp"] !== null) {
            $this->BornTimestamp = $param["BornTimestamp"];
        }

        if (array_key_exists("StoreTimestamp",$param) and $param["StoreTimestamp"] !== null) {
            $this->StoreTimestamp = $param["StoreTimestamp"];
        }

        if (array_key_exists("BornHost",$param) and $param["BornHost"] !== null) {
            $this->BornHost = $param["BornHost"];
        }

        if (array_key_exists("MsgTag",$param) and $param["MsgTag"] !== null) {
            $this->MsgTag = $param["MsgTag"];
        }

        if (array_key_exists("MsgKey",$param) and $param["MsgKey"] !== null) {
            $this->MsgKey = $param["MsgKey"];
        }

        if (array_key_exists("Properties",$param) and $param["Properties"] !== null) {
            $this->Properties = $param["Properties"];
        }

        if (array_key_exists("ReConsumeTimes",$param) and $param["ReConsumeTimes"] !== null) {
            $this->ReConsumeTimes = $param["ReConsumeTimes"];
        }

        if (array_key_exists("MsgBody",$param) and $param["MsgBody"] !== null) {
            $this->MsgBody = $param["MsgBody"];
        }

        if (array_key_exists("MsgBodyCRC",$param) and $param["MsgBodyCRC"] !== null) {
            $this->MsgBodyCRC = $param["MsgBodyCRC"];
        }

        if (array_key_exists("MsgBodySize",$param) and $param["MsgBodySize"] !== null) {
            $this->MsgBodySize = $param["MsgBodySize"];
        }

        if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) {
            $this->RequestId = $param["RequestId"];
        }
    }
}
